package demo07;

/*
 *  装箱：把基本类型的数据，包装到包装类中（基本类型的数据->包装类）
 *      构造方法：
 *          Integer(int value)：构造一个新分配的 Integer 对象，它表示指定的 int 值
 *          Integer(String s)：构造一个新分配的 Integer 对象，它表示 String 参数所指示的 int 值
 *              传递的字符串必须是基本类型的字符串，否则会抛出异常（"100"正确，"a"抛出异常）
 *      静态方法：
 *          static Integer valueOf(int i)：返回一个表示指定的 int 值的 Integer 实例
 *          static Integer valueOf(String s)：返回保存指定的 String 的值的 Integer 对象
 *  拆箱：在包装类中取出基本类型的数据（包装类->基本类型的数据）
 *      成员方法：
 *          int intValue()：以 int 类型返回该 Integer 的值
 *  注意：以上包装类方法以Integer类为举例，其他包装类方法的方法名与功能也近似于它，没有差别。
 */
public class Demo01Integer {
    public static void main(String[] args) {
        // 装箱：把基本类型的数据，包装到包装类中（基本类型的数据->包装类）
        // 构造方法
        Integer integer = new Integer(1);   
        System.out.println(integer); // 1，该类重写了toString方法

        Integer integer2 = new Integer("1");
        System.out.println(integer2); // 1，该字符串是对应基本类型的字符串，所以变量被正确赋值

        // 静态方法
        Integer integer3 = Integer.valueOf(1);
        System.out.println(integer3); // 1

        Integer integer4 = Integer.valueOf("1");
        System.out.println(integer4); // 1

        // Integer integer5 = Integer.valueOf("a"); // 错误！NumberFormatException数字格式化异常

        // 拆箱：在包装类中取出基本类型的数据（包装类->基本类型的数据）
        int i = integer.intValue();
        System.out.println(i); // 1
    }
}
